Test scripting is a major, effort-intensive stage in software testing. This stage is predominantly a manual, error-prone process often resulting in high rework and maintenance efforts in addition to scripting. In some instances, the time it takes to create test scripts may equal or exceed the time it takes to test the software being tested. Furthermore, in many situations, the tester does not have expertise in the particular domain in which the software is used, which further exasperates the inefficiencies and error-prone nature of the test scripting stage.